package com.agp.service;

import com.agp.dto.*;
import com.agp.entity.HealthRecord;
import com.agp.result.PageResult;
import com.agp.vo.*;
import com.fasterxml.jackson.core.JsonProcessingException;

import java.util.List;

public interface TreeService {
    // 保存古树信息
    Integer save(TreeDTO treeDTO) throws Exception;

    // 分页查询
    PageResult page(AncientTreePageQueryDTO pageQueryDTO);

    //  获取所有古树标记所需要信息
    List<MarkerVO> getMarker();

    /**
     * 批量删除古树
     * @param ids
     */
    void delete(Integer[] ids);

    // 古树更新
    void update(TreeUpdateDTO treeUpdateDTO);

    /**
     * 获取古树科名数量
     * @return
     */
    List<TreeFamilyCountVO> getTreeFamilyCount();


    /**
     * 获取古树详情
     * @param treeId
     * @return
     */
    TreeDetailVO getDetailTreeInfo(Integer treeId);

    /**
     * 获取古树属名数量
     * @return
     */
    List<TreeGenusCountVO> getTreeGenusCount();

    /**
     * 添加健康记录
     * @param healthRecordDTO
     */

    void addHealthyRecord(HealthRecordDTO healthRecordDTO) throws JsonProcessingException;

    // 获取健康记录
    List<MessageVO> getHealthyRecord(MessageQueryDTO messageQueryDTO);

    /**
     * 更新健康记录状态
     * @param healthRecord
     */
    void updateHealthRecordStatus(HealthRecord healthRecord);
}
